package 文件与io流;

import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;

public class 文件过滤器 {
	public static void main(String [] args)
	{
		File file=new File("D:/代码");
		//1.利用FileFilter过滤器过滤出文件
			FileFilter fileFilter =new FileFilter() {
				
				@Override
				public boolean accept(File pathname) {  //这里的参数是被返回到File数组中的每个files对象
					// TODO 自动生成的方法存根
					if(pathname.getName().contains("表"))
						return true;
					else
						return false;
				}
			};
			
		//2.利用FilenameFilter过滤器过滤文件	
			FilenameFilter filenameFilter=new FilenameFilter() {
				
				@Override
				public boolean accept(File dir, String name) {  //这里的dir参数是名为name文件的父目录
					// TODO 自动生成的方法存根
					if(name.contains("链表"))
						return true;
					else
						return false;
				}
			};
			File[] files=file.listFiles(fileFilter);
			File[] files1=file.listFiles(filenameFilter);
				for(File f:files)
					{
						System.out.println(f.getName());
					}
			System.out.println("--------------------------------");
				for(File f:files1)
				{
					System.out.println(f.getName());
				}
				
			System.out.println("--------------------------------");
		//3.使用list获取文件名称并过滤(使用匿名内部类)
			String[] strings=file.list(new FilenameFilter() {
				
				@Override
				public boolean accept(File dir, String name) {
					// TODO 自动生成的方法存根
					if(name.contains("信息"))
						return true;
					else
						return false;
				}
			});
			for(String string:strings)
			{
				System.out.println(string);
			}
	}
}